package cn.dglydrpy.study.spring.ioc.annotation;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @Description:演示使用@Autowired进行依赖注入的常见情况 
 *              1.默认required="true",即必须注入一个bean,如果没有会报错;设置为false可以不注入该字段并跳过这种注入报错
 *              2.按类型注入,如果发现1个以上,会报错!!
 * @author:LY_飘涯
 * @date:2019年4月20日 下午1:01:37
 * @version:1.0
 */
@Component
public class AutowiredDIBean {
	// 具体类
	@Autowired
	private Sky sky1; // beanID:sky
	// 带别名的具体类   无视别名,仍按类型注入,该类型只有1个类即正常注入
	@Autowired
	private Sea sea; // beanID:blueSea
	// 继承  发现多个子类注入时必然报错!!!
/*	@Autowired // teacher/student
	private Person student3; // 报错! */
	// 接口
	@Autowired
	private IService serviceImpl4; // beanID:serviceImpl
	// 带别名的接口  无视别名,一旦实现该接口的实现类有2个及以上就会报错!!! 解决方法:用实现类做声明
	@Autowired
	private IDAO daoImpl5; // beanID:myDao

	public void show() {
		System.out.println("hello!");
	}
}
